/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.sapra.dao;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.util.Date;
import org.sapra.dep.conexion.DAC;

/**
 *
 * @author luiz
 */
public class ModelXML extends DAC{
    public ModelXML(int practicante_Id,int opcplan){
            this.opcplan=opcplan;
            this.practicanteId=practicante_Id;
            persistence();
            direccion(dir_emp,1);
            direccion(dir_prac,2);

    }
     //Datos de Empresa
    private int opcplan=0;
    private int empresaId=0;
    private String razon_empresa="";
    private String rfc_empresa="";
    private String emp_calle="";
    private String emp_colonia="";
    private int dir_emp=0;
    //fin datos de Empresa
    private int practicanteId=0;
    private String prac_nom="";
    private String rfc_prac="";
    private String prac_calle="";
    private String prac_colonia="";
    private int dir_prac=0;
    //fin datos Pract

    private String nombre1="";
    private String parentesco1="";
    private int porcentaje1=0;

    private String nombre2="";
    private String parentesco2="";
    private int porcentaje2=0;

    private int plan=0;
    private String nombre_plan="";
    private Date vigencia=new Date();
    private int duracion=1;
    private int cobroAEmpresa=0;


    public int getDuracion() {
        return duracion;
    }

    public void setDuracion(int duracion) {
        this.duracion = duracion;
    }

    public String getEmp_calle() {
        return emp_calle;
    }

    public void setEmp_calle(String emp_calle) {
        this.emp_calle = emp_calle;
    }

    public String getEmp_colonia() {
        return emp_colonia;
    }

    public void setEmp_colonia(String emp_colonia) {
        this.emp_colonia = emp_colonia;
    }

    public int getEmpresaId() {
        return empresaId;
    }

    public void setEmpresaId(int empresaId) {
        this.empresaId = empresaId;
    }

    public String getNombre1() {
        return nombre1;
    }

    public void setNombre1(String nombre1) {
        this.nombre1 = nombre1;
    }

    public String getNombre2() {
        return nombre2;
    }

    public void setNombre2(String nombre2) {
        this.nombre2 = nombre2;
    }

    public String getParentesco1() {
        return parentesco1;
    }

    public void setParentesco1(String parentesco1) {
        this.parentesco1 = parentesco1;
    }

    public String getParentesco2() {
        return parentesco2;
    }

    public void setParentesco2(String parentesco2) {
        this.parentesco2 = parentesco2;
    }

    public int getPlan() {
        return plan;
    }

    public void setPlan(int plan) {
        this.plan = plan;
    }

    public int getPorcentaje1() {
        return porcentaje1;
    }

    public void setPorcentaje1(int porcentaje1) {
        this.porcentaje1 = porcentaje1;
    }

    public int getPorcentaje2() {
        return porcentaje2;
    }

    public void setPorcentaje2(int porcentaje2) {
        this.porcentaje2 = porcentaje2;
    }

    public String getPrac_calle() {
        return prac_calle;
    }

    public void setPrac_calle(String prac_calle) {
        this.prac_calle = prac_calle;
    }

    public String getPrac_colonia() {
        return prac_colonia;
    }

    public void setPrac_colonia(String prac_colonia) {
        this.prac_colonia = prac_colonia;
    }

    public int getPracticanteId() {
        return practicanteId;
    }

    public void setPracticanteId(int practicanteId) {
        this.practicanteId = practicanteId;
    }

    public String getRazon_empresa() {
        return razon_empresa;
    }

    public void setRazon_empresa(String razon_empresa) {
        this.razon_empresa = razon_empresa;
    }

    public String getRfc_empresa() {
        return rfc_empresa;
    }

    public void setRfc_empresa(String rfc_empresa) {
        this.rfc_empresa = rfc_empresa;
    }

    public String getRfc_prac() {
        return rfc_prac;
    }

    public void setRfc_prac(String rfc_prac) {
        this.rfc_prac = rfc_prac;
    }

    public Date getVigencia() {
        return vigencia;
    }

    public void setVigencia(Date vigencia) {
        this.vigencia = vigencia;
    }



    public int getDir_emp() {
        return dir_emp;
    }

    public void setDir_emp(int dir_emp) {
        this.dir_emp = dir_emp;
    }

    public int getDir_prac() {
        return dir_prac;
    }

    public void setDir_prac(int dir_prac) {
        this.dir_prac = dir_prac;
    }

    public String getPrac_nom() {
        return prac_nom;
    }

    public void setPrac_nom(String prac_nom) {
        this.prac_nom = prac_nom;
    }

    public String getNombre_plan() {
        return nombre_plan;
    }

    public void setNombre_plan(String nombre_plan) {
        this.nombre_plan = nombre_plan;
    }

    public int getCobroAEmpresa() {
        return cobroAEmpresa;
    }

    public void setCobroAEmpresa(int cobroAEmpresa) {
        this.cobroAEmpresa = cobroAEmpresa;
    }

    private void persistence(){
        String sql="";
        try {
               Class.forName("com.mysql.jdbc.Driver").newInstance();
               conn = (Connection) DriverManager.getConnection(url);
               stmt = (Statement) conn.createStatement();
               sql+="SELECT e.razon_factura AS razon_factura"
                       + " ,e.rfc AS rfc_emp"
                       + " ,CONCAT(p.nombre,' ',p.paterno,' ',p.materno) AS nombrep"
                       + " ,p.rfc AS rfc_prac"
                       + " ,ps.fec_inicio AS fec_inicio"
                       + " ,ps.beneficiario1 AS beneficiario1"
                       + " ,ps.porcentaje1 AS porcentaje1"
                       + " ,ps.parentesco1 AS parentesco1"
                       + " ,ps.beneficiario2 AS beneficiario2"
                       + " ,ps.porcentaje2 AS porcentaje2"
                       + " ,ps.parentesco2 AS parentesco2"
                       + " ,plan.planSeguroId AS planId"
                       + " ,plan.nombre AS nombreplan"
                       + " ,plan.mesesAmparados AS mesesAmparados"
                       + " ,p.fk_direccionId AS pdir"
                       + " ,e.fk_direccionId AS edir"
                       + " ,ps.cobrarPolizaAEmpresa AS cobrar"
                       + " FROM practicante p"
                       + " INNER JOIN departamento d"
                       + " ON p.fk_departamentoId=d.departamentoId "
                       + " INNER JOIN empresa e"
                       + " ON d.fk_empresaId=e.empresaId"
                       + " INNER JOIN polizaseguro  ps"
                       + " ON p.practicanteId=ps.fk_practicanteId"
                       + " INNER JOIN planseguro plan"
                       + " ON ps.fk_planSeguroId=plan.planSeguroId";
                       if(opcplan==0)
                            sql+= " WHERE p.practicanteId="+this.practicanteId+" AND plan.fk_aseguradoraId=2 LIMIT 1;";
                       else
                           sql+= " WHERE ps.polizaSeguroId="+this.opcplan+" AND plan.fk_aseguradoraId=2 LIMIT 1;";
               System.out.println(sql);
               rs=stmt.executeQuery(sql);
                  while(rs.next()){
                      this.razon_empresa=rs.getString("razon_factura");
                      this.rfc_empresa=rs.getString("rfc_emp");
                      this.prac_nom=rs.getString("nombrep");
                      this.rfc_prac=rs.getString("rfc_prac");
                      this.vigencia=rs.getDate("fec_inicio");
                      this.nombre1=rs.getString("beneficiario1");
                      this.porcentaje1=rs.getInt("porcentaje1");
                      this.parentesco1=rs.getString("parentesco1");
                      this.nombre2=rs.getString("beneficiario2");
                      this.porcentaje2=rs.getInt("porcentaje2");
                      this.parentesco2=rs.getString("parentesco2");
                      this.nombre_plan=rs.getString("nombreplan");
                      this.duracion=rs.getInt("mesesAmparados");
                      this.dir_prac=rs.getInt("pdir");
                      this.dir_emp=rs.getInt("edir");
                      this.plan=rs.getInt("planId");
                      this.cobroAEmpresa=rs.getInt("cobrar");
                  }
               CloseConnexion();
        } catch (Exception e) {
            CloseConnexion();
        }

    }

    public void direccion(int id,int opc){
        String sql="";
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
               conn = (Connection) DriverManager.getConnection(url);
               stmt = (Statement) conn.createStatement();
               sql="SELECT CONCAT(d.calle,' ',numero_exterior,' ',numero_interior) AS dir"
                       + " ,c.nombre "
                       + " FROM direccion d"
                       + " INNER JOIN colonia c"
                       + " ON d.fk_coloniaId=c.coloniaId"
                       + " WHERE d.direccionId="+id;
                rs=stmt.executeQuery(sql);
                  while(rs.next()){
                        if(opc==1){
                            emp_calle=rs.getString("dir");
                            emp_colonia=rs.getString("nombre");
                        }
                        else{
                            prac_calle=rs.getString("dir");
                            prac_colonia=rs.getString("nombre");

                        }
                  }
            CloseConnexion();
        } catch (Exception e) {
            CloseConnexion();
        }


    }


}
